The present invention relates in general to data processing systems, and in particular, to server systems deploying software to client data processing systems.
Typical data processing methodologies for installing, updating and maintaining software on client systems are based on a simple xe2x80x9ccopy files and execute scriptsxe2x80x9d model. In other words, files to be deployed are copied from a server storage area, in accordance with a script, and downloaded to the target client, also in accordance with the script. A script is a sequence of instructions that is interpreted by the scripting language program. Generally, scripts take longer to run than a compiled program, and are typically better suited for programs of limited capability, or that can reuse and tie together existing compiled programs.
With increasing sophistication of data processing systems, generally, and in the operating systems associated therewith, the process of installing or updating software, that is, software deployment, has become much more complex. In addition to merely typing lines of text, installation software must be able to handle registry entries, INI file entries, folders, and shortcuts, for example. The registry, within the Windows(trademark) Operating System context, for example, is an operating system database that contains information about the operating system, its applications, and file associations. The registry holds both hardware and software information. The installation software must be able to modify information within the registry data base. Similarly, INI files hold configuration information for applications installed on the data processing system. Installation software must also be able to modify entries in INI files. Shortcuts or icons presented on the desktop that may be used to provide quick access to the associated application. Installation software must be able to install shortcut information associated with a particular application that is being installed so that the operating system can link the shortcut and the application, as well as display the shortcut on the desktop.
The aforementioned scripting methodologies are complicated to use with a complex configuration process demanded by modern data processing software. For example, the Microsoft(copyright) Office 95 installation program adds, in order of magnitude, a thousand registry entries arid several tens of shortcuts. When such large numbers of entries are involved, the scripting methodologies are prone to error, complicating the task of generating the installation software. Additionally, software deployment typically requires that multiple actions be taken on the target machine. Often, an install operation is also accompanied by the need to remove files and entries, as well as the installation of the software elements. This adds to the complexity of the process for generating the required scripts.
Thus, there is need in the art for mechanisms to manage the deployment of software. In particular, there is a need for methods and apparatus for automatically generating software useable for restoring a target system to its original state following a software installation procedure, and additionally, there is a need for apparatus and methods to automatically generate the restoration software during the deployment process.
The aforementioned needs are addressed by the present invention. Accordingly, there is provided, in a first form, a software deployment method. The method includes executing one or more actions modifying at least one software elements on a client processing system. A program is built for returning the client system to an unmodified state. Building the program includes determining a type of the one or more actions and inserting a call to a corresponding complementary method in a program file containing the program.
There is also provided, in a second form, a computer program product adapted for storage on machine readable media, the program product including programming for software deployment. The programming contains programming for executing one or more actions modifying at least one software elements on a client processing system programming for building a program for returning the client system to an unmodified state. The programming for building a program determines a type of the one or more actions and inserts a call to a corresponding complementary method in a program file containing the program.
Additionally, there is provided, in a third form, a data processing system for software deployment. The system contained circuitry operable for executing one or more actions modifying at least one software elements on a client processing system and circuitry operable for building a program for returning the client system to an unmodified state. The circuitry for returning the client system to an unmodified state includes circuitry operable for building a program in which the circuitry is operable for determining a type of the one or more actions. There is also circuitry operable for inserting a call to a corresponding complementary method in a program file containing the program.
The foregoing has outlined rather broadly the features and technical advantages of the present invention in order that the detailed description of the invention that follows may be better understood. Additional features and advantages of the invention will be described hereinafter which form the subject of the claims of the invention.